<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Rubricas extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('Rubricas_Model');
    }   

    function cargar_datos() {
        echo $this->load->view('rubricas/cargar_datos');
    }

    function nav_rubricas() {
        echo $this->load->view('rubricas/nav_rubricas');
    }

    function ver_rubrica_docente() {
        echo $this->load->view('rubricas/ver_rubrica_docente');
    }

    function visualizar_rubrica_total() {
        $idCurso = $this->session->userdata('curso');
        $rubrica_Total = $this->Rubricas_Model->buscar_rubrica_total($idCurso);

        $niveles = $this->Rubricas_Model->buscar_niveles_total($idCurso);
        $cad = "<table class='table'>
                        <thead>
                            <tr style='background-color:#33CCFF; border-color:black;'>
                            <th  style='border-color:black;'><div class='text-center'>Aspecto</div></th> <th>Criterio</th> <th  colspan=\"4\" ><div class='text-center'>Nivel</div></th></tr><tr><td colspan=\"2\"></td>";

        for ($j = 0; $j < count($niveles); $j++)
            $cad = $cad . "<td style='background-color:#669999; border-color:black;' ><div class='text-center'><b>" . $niveles[$j]['nivel'] . "</b></div></td>";

        $cad = $cad . " </tr>
                        </thead><tbody>";

        $resultadoAnterior = $rubrica_Total[0]['desResultado'];
        $v = 0; $d=0;
        for ($i = 0; $i < count($rubrica_Total); $i++) {

            $resultadoActual = $rubrica_Total[$i]['desResultado'];

            if ($resultadoActual <> $resultadoAnterior) {
                $resultadoAnterior = $rubrica_Total[$i]['desResultado'];
                $es = "diferente";
                $d=1;
            } else {
                $es = "igual";
                $v++;
                $d++;
            }


            if ($es == "igual" && $v == 1) {
                $cad = $cad . "<tr class='tr_hover_nothing'><td colspan=\"6\" style='background-color:CornflowerBlue; border-color:black;'><b>" . $resultadoActual . "</b></tr>";
                $cad = $cad . "<tr class='tr_hover_nothing'><td>" . $rubrica_Total[$i]['desAspecto'] . "</td>
                               <td>" . $rubrica_Total[$i]['desCriterio'] . "</td>";
                $datosNiveles = $this->Rubricas_Model->buscar_nivelxcriterio($rubrica_Total[$i]['desCriterio']);
                for ($z = 0; $z < count($datosNiveles); $z++) {
                    $cad = $cad . "<td>" . $datosNiveles[$z]['descripcion'] . "</td>";
                }
            } else if ($es == "igual") {

                $cad = $cad . "<tr  class='tr_hover_nothing'><td>" . $rubrica_Total[$i]['desAspecto'] . "</td>
                               <td>" . $rubrica_Total[$i]['desCriterio'] . "</td>";

                $datosNiveles = $this->Rubricas_Model->buscar_nivelxcriterio($rubrica_Total[$i]['desCriterio']);
                for ($z = 0; $z < count($datosNiveles); $z++) {
                    $cad = $cad . "<td>" . $datosNiveles[$z]['descripcion'] . "</td>";
                }
            } else if ($es == "diferente" && $d==1) {
                $cad = $cad . "<tr class='tr_hover_nothing'><td colspan=\"6\" style='background-color:CornflowerBlue; border-color:black;'><b>" . $resultadoActual . "</b></tr>";
              
                $cad = $cad . "<tr class='tr_hover_nothing'><td>" . $rubrica_Total[$i]['desAspecto'] . "</td>
                               <td>" . $rubrica_Total[$i]['desCriterio'] . "</td>";

                $datosNiveles = $this->Rubricas_Model->buscar_nivelxcriterio($rubrica_Total[$i]['desCriterio']);
                for ($z = 0; $z < count($datosNiveles); $z++) {
                    $cad = $cad . "<td>" . $datosNiveles[$z]['descripcion'] . "</td>";
                }
            }
        


        $cad = $cad . "</tr>";
        }

        $cad = $cad . "</tbody></table>";
        echo $cad;
    }

    function registrar_rubrica() {
        $data['tiponiveles'] = $this->Rubricas_Model->combo_tipoNiveles();
        echo $this->load->view('rubricas/registrar_rubrica', $data);
    }

    function registrar_rubricaxcurso() {
        $data['cursos'] = $this->Rubricas_Model->combo_cursos();
        $data['rubricas'] = $this->Rubricas_Model->combo_rubricas();
        echo $this->load->view('rubricas/registrar_rubricaxcurso', $data);
    }

    function registrar_nivel() {
        echo $this->load->view('rubricas/registrar_nivel');
    }

    function registrar_nivel_2() {


        $data['nombreNivel'] = $this->input->post('nombreNivel');
        $data['descripcionNivel'] = $this->input->post('descripcionNivel');
        $listaEscala = $this->input->post('listaEscala');
        $mensaje = $this->Cursos_Model->registra_niveles($data, $listaEscala);

        echo $mensaje;
    }

    function administracion_niveles() {
        echo $this->load->view('rubricas/administracion_niveles');
    }

    function administracion_rubricaxcurso() {
        $data['cursos'] = $this->Rubricas_Model->combo_cursos();
        echo $this->load->view('rubricas/administracion_rubricaxcurso', $data);
    }

    function buscar_niveles() {
        $idTiponivel = $this->input->post('idTiponivel');
        $niveles = $this->Rubricas_Model->buscar_niveles($idTiponivel);
        $jsonData = json_encode($niveles);
        echo $jsonData;
    }

    function registrar() {
        $rubrica = $this->input->post('obj');
        $data['nombreRubrica'] = $this->input->post('nombreRubrica');
        $data['descripcionRubrica'] = $this->input->post('descripcionRubrica');
        $data['tiponiveles'] = $this->input->post('tiponiveles');

        $mensaje = $this->Rubricas_Model->registrar_rubrica($rubrica, $data);
        echo $mensaje;
    }

    function cargarArbol() {
        $resultado = array();

        $idRubrica = $this->input->post('idRubrica');
        $tiponivel = $this->Rubricas_Model->buscar_tipoNivel($idRubrica);
        $escalas = $this->Rubricas_Model->buscar_escalas($tiponivel[0]['idTiponivel']);
        $rubrica = $this->Rubricas_Model->buscar_criterios_arbol($idRubrica);
        $rubrica_ids = $this->Rubricas_Model->buscar_ids_arbol($idRubrica);

        $cadEscalas = "<table class='table table-condensed'>
                        <thead>
                            <tr>
                                <th>N°</th> <th>nombre</th> <th>valor</th>
                            </tr>
                        </thead>
                        <tbody>";
        $i = 1;
        foreach ($escalas as $escala) {
            $cadEscalas.= "<tr><td>$i</td><td>" . $escala['nombre'] . "</td><td>" . $escala['valor'] . "</td></tr>";
            $i++;
        }
        $cadEscalas.= "</tbody></table>";

        //////////////////////////

        $cantRes = count($rubrica);
        $cad = "<ul>";
        $resultados = array_keys($rubrica);
        $resultados_ids = array_keys($rubrica_ids);
        for ($i = 0; $i < $cantRes; $i++) {
            $cad.="<li id=" . substr($resultados_ids[$i], 3) . ">" . $resultados[$i];

            $aspectos = array_keys($rubrica[$resultados[$i]]);
            $aspectos_ids = $rubrica_ids[$resultados_ids[$i]];
            $cantAsp = count($aspectos);

            $cad.="<ul>";

            for ($j = 0; $j < $cantAsp; $j++) {
                $cad.="
                <li id=" . substr($aspectos_ids[$j], 3) . ">" . $aspectos[$j];
                $criterios = array_keys($rubrica[$resultados[$i]][$aspectos[$j]]);
                $cantCrit = count($criterios);
                $cad.="<ul>";

                for ($k = 0; $k < $cantCrit; $k++) {
                    $cad.= "<li class='hijo' id='" . $rubrica[$resultados[$i]][$aspectos[$j]][$criterios[$k]] . "'>" . $criterios[$k] . "</li>";
                }
                $cad.="</ul></li>";
            }

            $cad.="</ul></li>";
        }

        $cad.="</ul>";

        $resultado['0'] = $tiponivel[0]['nombre'];
        $resultado['1'] = $cad;
        $resultado['2'] = $cadEscalas;
        echo json_encode($resultado);
    }

    function asignar_rubrica_curso() {
        $idCurso = $this->input->post('idCurso');
        $criterios = $this->input->post('criterios');
        $mensaje = $this->Rubricas_Model->asignar_rubrica_curso($idCurso, $criterios);
        echo $mensaje;
    }

    function buscar_descripcion() {
        $id = $this->input->post('id');
        $descripcion = array();

        switch (substr($id, 0, 3)) {
            case "res":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "res", "descripcion");
                $descripcion['1'] = "Resultado";
                break;
            case "asp":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "asp", "descripcion");
                $descripcion['1'] = "Aspecto";
                break;
            case "cri":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "cri", "descripcion");
                $descripcion['1'] = "Criterio";
                break;
        }
        echo json_encode($descripcion);
    }

    function arbol_rubrica_docente() {
        $resultado = array();

        $idCurso = $this->session->userdata('curso');
        $nbrCurso = $this->Rubricas_Model->nombre_curso($idCurso);
        $rubrica = $this->Rubricas_Model->buscar_criteriosxcurso_arbol($idCurso);
        $rubrica_ids = $this->Rubricas_Model->buscar_ids_criteriosxcurso_arbol($idCurso);

        $cantRes = count($rubrica);
        $cad = "<ul>";
        $resultados = array_keys($rubrica);
        $resultados_ids = array_keys($rubrica_ids);
        for ($i = 0; $i < $cantRes; $i++) {
            $cad.="<li id=" . substr($resultados_ids[$i], 3) . ">" . $resultados[$i];

            $aspectos = array_keys($rubrica[$resultados[$i]]);
            $aspectos_ids = array_keys($rubrica_ids[$resultados_ids[$i]]);
            $cantAsp = count($aspectos);

            $cad.="<ul>";

            for ($j = 0; $j < $cantAsp; $j++) {
                $cad.="<li id=" . substr($aspectos_ids[$j], 3) . ">" . $aspectos[$j];
                $criterios = array_keys($rubrica[$resultados[$i]][$aspectos[$j]]);
                $criterios_ids = $rubrica_ids[$resultados_ids[$i]][$aspectos_ids[$j]];
                $cantCrit = count($criterios);
                $cad.="<ul>";

                for ($k = 0; $k < $cantCrit; $k++) {
                    $cad.= "<li id=" . substr($criterios_ids[$k], 3) . ">" . $criterios[$k];
                    $niveles = array_keys($rubrica[$resultados[$i]][$aspectos[$j]][$criterios[$k]]);
                    $cantNiv = count($niveles);
                    $cad.="<ul>";
                    for ($l = 0; $l < $cantNiv; $l++) {
                        $cad.= "<li id='" . $rubrica[$resultados[$i]][$aspectos[$j]][$criterios[$k]][$niveles[$l]] . "'>" . $niveles[$l] . "</li>";
                    }
                    $cad.="</ul></li>";
                }
                $cad.="</ul></li>";
            }

            $cad.="</ul></li>";
        }

        $cad.="</ul>";

        $resultado['0'] = $nbrCurso;
        $resultado['1'] = $cad;
        echo json_encode($resultado);
    }

    function arbol_rubrica_evaluacion() {

        $idCurso = $this->session->userdata('curso');
        //$nbrCurso = $this->Rubricas_Model->nombre_curso($idCurso);
        $rubrica = $this->Rubricas_Model->buscar_criteriosxcurso_evaluacion_arbol($idCurso);
        $rubrica_ids = $this->Rubricas_Model->buscar_ids_criteriosxcurso_evaluacion_arbol($idCurso);

        $cantRes = count($rubrica);
        $cad = "<ul>";
        $resultados = array_keys($rubrica);
        $resultados_ids = array_keys($rubrica_ids);
        
        for ($i = 0; $i < $cantRes; $i++) {
            $cad.="<li id='" . substr($resultados_ids[$i], 3) . "'><span id='" . substr($resultados_ids[$i], 3) . "_'>" . $resultados[$i] . "</span>";

            $aspectos = array_keys($rubrica[$resultados[$i]]);
            $aspectos_ids = $rubrica_ids[$resultados_ids[$i]];
            $cantAsp = count($aspectos);

            $cad.="<ul>";

            for ($j = 0; $j < $cantAsp; $j++) {
                $cad.="

                <li id='" . substr($aspectos_ids[$j], 3) . "'><span id='" . substr($aspectos_ids[$j], 3) . "_'>" . $aspectos[$j] . "</span>";
                $criterios = array_keys($rubrica[$resultados[$i]][$aspectos[$j]]);
                $cantCrit = count($criterios);
                $cad.="<ul>";

                for ($k = 0; $k < $cantCrit; $k++) {
                    $cad.= "<li class='hijo' id='" . $rubrica[$resultados[$i]][$aspectos[$j]][$criterios[$k]] . "'><span id=" . $rubrica[$resultados[$i]][$aspectos[$j]][$criterios[$k]] . "_>" . $criterios[$k] . "</span></li>";
                }
                $cad.="</ul></li>";
            }

            $cad.="</ul></li>";
        }

        $cad.="</ul>";


        echo $cad;
        
    }

    function buscar_atributos_rubrica_docente() {
        $id = $this->input->post('id');
        $idPadre = $this->input->post('idPadre');
        $descripcion = array();

        switch (substr($id, 0, 3)) {
            case "res":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "res", "descripcion");
                $descripcion['1'] = "Resultado";
                $descripcion['2'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "res", "nombre");
                break;
            case "asp":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "asp", "descripcion");
                $descripcion['1'] = "Aspecto";
                $descripcion['2'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "asp", "nombre");
                break;
            case "cri":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "cri", "descripcion");
                $descripcion['1'] = "Criterio";
                $descripcion['2'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "cri", "nombre");
                break;
            case "niv":
                $descripcion['0'] = $this->Rubricas_Model->buscar_descripcion_niv(substr($id, 4), substr($idPadre, 4), "niv", "descripcion");
                $descripcion['1'] = "Nivel";
                $descripcion['2'] = $this->Rubricas_Model->buscar_descripcion(substr($id, 4), "niv", "nombre");
                $descripcion['3'] = $this->Rubricas_Model->buscar_descripcion_niv(substr($id, 4), substr($idPadre, 4), "niv", "valor");
                break;
        }
        echo json_encode($descripcion);
    }

}